JenkinsでiOSアプリ開発の細々した作業を自動化する(その2 〜 TestFlightで配信 → HipChatで通知)
はじめに
前回はGitから取得、UnitTest、ビルド等の基本的な設定をしました。
今回はオプション的な設定でTestFlightでアプリを配信したりHipChatで通知してiOS開発ライフをもっと便利にしたいと思います。
環境
Jenkins Plugins
- Jenkins HipChat Plugin
- 0.1.4
- Testflight Plugin
- 1.3.8
TestFlightの設定
※ TestFlight単体での動作は確認できていることが前提です。
システムの設定 > TestFlight
最初に「Jenkinsの管理 > システムの設定」 からTokenの設定をします。個々のジョブに設定するのではなく、システムの設定になります。
Test FlightのTeam TokenとAPI Tokenの情報が必要です。各Tokenの場所は↓です。
Team Token
https://testflightapp.com/dashboard/team/edit/
API Token
https://testflightapp.com/account/#api
※ URLが無効になっていました。新しい情報はこちらです。 https://developer.apple.com/testflight/
システムの設定
各ジョブの設定 > TestFlight
システム設定で設定した名前のトークンの組み合わせを各Jobで設定します。
高度な設定からNotify Teamにチェックを入れた場合に、メールで新しいアプリがある事を通知しますが、何故かメールが配信されなくてハマりました。
原因はDistribution ListプロパティにTeam名を設定していましたが、正しくはDistribution List名を設定するようです。気づけば当たり前ですね。TestFlightでは Team(開発チーム) の中で複数の Distribution List(プロジェクト) があるイメージです。
結局HipChatで通知するようにしたので、この機能は使ってません。
iPhoneアプリでインストールが有効になった様子
インストールきた~
HipChatの設定
システムの設定 > Global HipChat Notifier Settings
「Jenkinsの管理 > システムの設定」 からHipChatのTokenの設定をします。こちらも個々のジョブに設定するのではなく、システムの設定になります。
HipChat API Tokenの情報が必要です。Tokenの場所は↓です。
API Token
https://cmcm.hipchat.com/admin/api
システムの設定
各ジョブの設定 > HipChat Notifications
特に設定項目はありません。
Macアプリで通知された様子
通知きたー
まとめ
TestFlightと連携することで、「最新版作ったから入れてねー」て周知するとか、「Mac無いんだけどー」とか、開発者以外にアプリを動作してもらう場合に特に配布が楽になります。さらにSDKの使用でリモートロギングとか、テスト時に便利な機能が多いようなのでこちらも追って行きたいです。HipChatは5ユーザー以上だと有料ですが、軽いMacアプリがある事や、Skypeだと弱い検索をカバーできるので最近使い始めてみてます。
まとめのまとめ
今回2回分の設定を絵にするとこんな感じです。とりあえず動作する感じでの設定はできましたが、実際運用していく中で細かい設定だとか例えばGitのブランチやJobの順番を分割するとか変化していくのかなと思います。どう変化するのかも楽しみです。
でわでわ
参考
iOS開発+Mac+JenkinsでCI環境構築2-Gitコミット時に自動的にTestflight配信
Jenkins + iPhoneアプリ(3) -ipaファイルをTestFlightにアップロード